package cn.lzy.study.datasource.datasource;

/**
 * 这个类用来存储当前线程所使用的数据源名称
 * @author LZY
 * @since 2022-08-10
 */
public class DynamicDataSourceContextHolder {

    private static ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();

    /**
     * 设置数据源
     * @param dataSourceType    数据源名称
     */
    public static void setDataSourceType(String dataSourceType) {
        CONTEXT_HOLDER.set(dataSourceType);
    }

    /**
     * 获取数据源
     * @return  数据源名称
     */
    public static String getDataSourceType() {
        return CONTEXT_HOLDER.get();
    }


    /**
     * 清空数据源（防止当前线程造成内存溢出、泄露）
     */
    public static void clearDataSourceType() {
        CONTEXT_HOLDER.remove();
    }
}
